package main

import "fmt"

func main() {
	a := 10
	str := "mike"

	// 匿名函数， 没有名字的函数
	// 形成闭包，可以使用外面的变量
	f1 := func() {
		fmt.Println(a)
		fmt.Println(str)
	}
	f1()

	type FuncType func()
	var f2 FuncType
	f2 = f1

	f2()

	// 无参匿名函数
	func() {
		fmt.Println("匿名函数结尾加括号表示直接调用")
	}()

	// 无参匿名函数
	func(a, b int) {
		fmt.Println("带参匿名函数直接调用，a = ", b, "b = ", b)
	}(1, 2)

	k, j := func(a, b int) (int, int) {
		if a > b {
			return a, b
		} else {
			return b, a
		}
	}(1, 2)

	fmt.Println(k, j)
}
